La sezione seguente descrive le modifiche nel comportamento di alcuni comandi e standard di Solaris 10.
Gli oggetti di tipo mutex_t e pthread_mutex_t devono partire da indirizzi allineati su 8 byte. Le applicazioni che non soddisfano questo requisito hanno problemi di funzionamento. Viene visualizzato il seguente messaggio di errore:
*** _THREAD_ERROR_DETECTION: lock usage error detected *** ... "mutex is misaligned" OR: "condvar is misaligned" |
Soluzione. L'impostazione della variabile d'ambiente qui indicata sui valori seguenti produce la visualizzazione degli errori di allineamento su stderr:
THREAD_ERROR_DETECTION=1
THREAD_ERROR_DETECTION=2
Gli utenti dovrebbero verificare le applicazioni con la variabile d'ambiente THREAD_ERROR_DETECTION impostata su uno dei valori indicati sopra e richiedere le opportune correzioni per le applicazioni non conformi.
Questo bug si verifica nell'utilizzo del server Samba con winbind in un ambiente Active Directory. La versione Solaris 10 5/09 include la versione del software Samba 3.0.28. Quando si esegue un'interrogazione su tutti gli utenti o su oltre mille utenti del server di Active Directory, winbind carica solo i primi mille risultati.
Soluzione. Nessuna.
PgAdmin III 1.6 non può essere usato per amministrare la versione 8.3 di PostgreSQL. PgAdmin 1.6 non è in grado di comprendere le strutture dei cataloghi della nuova versione di PostgreSQL. Vengono visualizzati vari messaggi di errore.
Soluzione. Eseguire un aggiornamento a PgAdmin III versione 1.8.
Nella presente versione sono state revisionate le seguenti pagine man relative a Solaris Trusted Extensions:
add_allocatable(1M)
remove_allocatable(1M)
label_to_str(3TSOL)
tsol_getrhtype(3TSOL)
tnzonecfg(4)
Queste pagine man riviste non possono essere visualizzate con il comando man. Per visualizzare queste pagine man, vedere il documento Solaris Trusted Extensions Reference Manual .
Solaris 10 include la shell Bash 3.00. Questa shell non esporta più automaticamente le seguenti variabili nell'ambiente:
HOME
PATH
SHELL
TERM
HOSTNAME
HOSTTYPE
MACHTYPE
OSTYPE
Questo nuovo comportamento si verifica anche se la shell assegna valori predefiniti a queste variabili.
Soluzione. Esportare queste variabili manualmente.
Il comportamento di /usr/bin/ln è stato modificato per aderire agli standard da SVID3 a XCU6. Se si utilizza il comando ln senza l'opzione -f per eseguire il collegamento a un file di destinazione esistente, il collegamento non viene stabilito. Un messaggio diagnostico viene inviato all'output standard per i messaggi di errore e il comando procede collegando eventuali altri file. Infine, il comando ln termina con un valore di errore.
Se ad esempio il file b esiste, la sintassi ln a b genera il messaggio seguente:
ln: b: File exists |
Questo nuovo comportamento ha effetto sugli script delle shell o sui programmi esistenti che includono il comando ln senza l'opzione -f. Alcuni script che operavano senza problemi possono generare un errore in Solaris 10.
Soluzione. Usare l'opzione -f con il comando ln. Se si dispone di uno script che esegue il programma ln, modificarlo in modo conforme al nuovo comportamento del comando.
In Solaris 10, tcsh è stato aggiornato alla versione 6.12. La versione attuale non supporta più variabili d'ambiente i cui nomi contengono un trattino o un segno di uguale. Gli script che contengono righe setenv e che nelle precedenti versioni di Solaris funzionavano correttamente possono generare errori in Solaris 10. Viene visualizzato il seguente messaggio di errore:
setenv: Syntax error |
Per maggiori informazioni, vedere la pagina man di tcsh per Solaris 10.
Soluzione. Non usare trattini o segni di uguale nei nomi delle variabili d'ambiente.
Le applicazioni create in stretta conformità con gli standard C sono interessate dalle modifiche al comportamento di alcune funzioni delle librerie. Un esempio è rappresentato dalle applicazioni compilate in modalità cc -Xc o c89. Le modifiche al comportamento riguardano le seguenti funzioni delle librerie:
fgetc()
fgets()
fgetwc()
fgetws()
getc()
getchar()
gets()
getwc()
getwchar()
getws()
Un'interpretazione formale dello standard C 1990 richiede che, dopo l'impostazione di una condizione di fine file, il file non restituisca altri dati nelle successive operazioni di input. È prevista un'eccezione quando il puntatore del file viene riposizionato o quando i flag di errore e di fine file vengono esplicitamente cancellati dall'applicazione.
Il comportamento rimane invariato per tutte le altre modalità di compilazione. In particolare, le interfacce possono leggere dal flusso i dati aggiuntivi scritti dopo l'impostazione dell'indicatore di fine file.
Soluzione. Chiamare fseek() o clearerr() nel flusso per continuare la lettura di dati aggiuntivi dopo la rilevazione della condizione EOF.
A causa della maggiore lunghezza degli UID, degli id dei processori e del tempo di esecuzione cumulativo, le colonne del comando ps sono state allargate. Gli script non devono perciò basarsi sull'uso di colonne di output a larghezza fissa.
Soluzione. Negli script, usare l'opzione -o del comando ps.
Per maggiori informazioni, vedere la pagina man ps(1).